From 18fbd0b478732ddeacc7844840510faee21f9971 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Wed, 5 Mar 2008 11:10:29 +0000 Subject: [PATCH] ioemu: Let the USB tablet reach the far bottom and right pixels by fixing divisions / multiplications into using width-1. Signed-off-by: Samuel Thibault --- tools/ioemu/hw/xenfb.c | 8 ++++---- tools/ioemu/sdl.c | 4 ++-- tools/ioemu/vnc.c | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tools/ioemu/hw/xenfb.c b/tools/ioemu/hw/xenfb.c index 0d9ab14666..affbcaaa0d 100644 --- a/tools/ioemu/hw/xenfb.c +++ b/tools/ioemu/hw/xenfb.c @@ -1052,8 +1052,8 @@ static void xenfb_mouse_event(void *opaque, struct xenfb *xenfb = opaque; if (xenfb->abs_pointer_wanted) xenfb_send_position(xenfb, - dx * xenfb->ds->width / 0x7fff, - dy * xenfb->ds->height / 0x7fff, + dx * (xenfb->ds->width - 1) / 0x7fff, + dy * (xenfb->ds->height - 1) / 0x7fff, dz); else xenfb_send_motion(xenfb, dx, dy, dz); @@ -1312,8 +1312,8 @@ static void xenfb_kbd_handler(void *opaque) buttons &= ~button; if (kbd_mouse_is_absolute()) kbd_mouse_event( - x * 0x7FFF / s->width, - y * 0x7FFF / s->height, + x * 0x7FFF / (s->width - 1), + y * 0x7FFF / (s->height - 1), 0, buttons); else diff --git a/tools/ioemu/sdl.c b/tools/ioemu/sdl.c index 9f6f90de26..f9e140d42e 100644 --- a/tools/ioemu/sdl.c +++ b/tools/ioemu/sdl.c @@ -331,8 +331,8 @@ static void sdl_send_mouse_event(int dx, int dy, int dz, int state) } SDL_GetMouseState(&dx, &dy); - dx = dx * 0x7FFF / width; - dy = dy * 0x7FFF / height; + dx = dx * 0x7FFF / (width - 1); + dy = dy * 0x7FFF / (height - 1); } else if (absolute_enabled) { sdl_show_cursor(); absolute_enabled = 0; diff --git a/tools/ioemu/vnc.c b/tools/ioemu/vnc.c index 464220dc4b..edd2bd53dc 100644 --- a/tools/ioemu/vnc.c +++ b/tools/ioemu/vnc.c @@ -1217,8 +1217,8 @@ static void pointer_event(VncState *vs, int button_mask, int x, int y) dz = 1; if (vs->absolute) { - kbd_mouse_event(x * 0x7FFF / vs->ds->width, - y * 0x7FFF / vs->ds->height, + kbd_mouse_event(x * 0x7FFF / (vs->ds->width - 1), + y * 0x7FFF / (vs->ds->height - 1), dz, buttons); } else if (vs->has_pointer_type_change) { x -= 0x7FFF; -- 2.30.2